/*******************************************
  Jose Andres Lara Vecino

  Author       : $Author: cainlara@gmail.com $
  Last CheckIn : $Date: 2012-08-22 18:35:06 +0000 (Wed, 22 Aug 2012) $
  Revision     : $Revision: 100 $
*******************************************/

package api.impl;

import java.util.ArrayList;
import java.util.List;

import persistencia.TmGrupoUsuario;
import utilidad.UtilConversor;
import api.IGrupoUsuariosAPI;
import core.TestManagerException;
import dao.GrupoUsuariosDao;
import frente.GrupoUsuarios;
import generico.GenericoAPI;

/**
 * Controlador de acciones para Grupos de usuarios.
 * <P>
 * Esta clase, administra la informacion 
 * persistente de los objetos tipo <code>GrupoUsuarios</code>.
 * 
 * @see GrupoUsuariosDao
 * @see TmGrupoUsuario
 * @see GrupoUsuarios
 * 
 * @author jose.lara 22.06.2012
 */
public class GrupoUsuariosAPI extends GenericoAPI implements IGrupoUsuariosAPI {
    private static final long serialVersionUID = 4505362620837950161L;
    
    private GrupoUsuariosDao dao = null;
    
    public GrupoUsuariosAPI() {
    }
    
    private GrupoUsuariosDao getDao() {
        if(dao == null) {
            dao = new GrupoUsuariosDao();
        }
        
        return dao;
    }
    
    @Override
    public List<GrupoUsuarios> getTodosGrupoUsuarios() throws TestManagerException {
        List<GrupoUsuarios> gruposUsuarios  = null;
        List<TmGrupoUsuario> persistentes   = null;
        GrupoUsuarios grupoUsuarios         = null;
        
        persistentes = getDao().getResultFindAll();
        
        if(persistentes != null) {
            gruposUsuarios = new ArrayList<GrupoUsuarios>();
            
            for(TmGrupoUsuario persistente : persistentes) {
                grupoUsuarios = UtilConversor.convertir2GrupoUsuarios(persistente);
                
                if(grupoUsuarios != null) {
                    gruposUsuarios.add(grupoUsuarios);
                }
            }
        }
        
        return gruposUsuarios;
    }
    
    @Override
    public GrupoUsuarios getGrupoUsuarios(Long llave) throws TestManagerException {
        TmGrupoUsuario persistente  = null;
        GrupoUsuarios grupoUsuarios = null;
        
        persistente = getDao().getResultfindById(TmGrupoUsuario.class, llave);
        
        if(persistente != null) {
            grupoUsuarios = UtilConversor.convertir2GrupoUsuarios(persistente);
        }
        
        return grupoUsuarios;
    }
    
    @Override
    public void guardarProyecto(GrupoUsuarios grupoUsuarios) throws TestManagerException {
        // TODO Auto-generated method stub
    }
    
    @Override
    public void eliminarProyecto(GrupoUsuarios grupoUsuarios) throws TestManagerException {
        // TODO Auto-generated method stub
    }
}